1. Technical Field
The present disclosure relates to a technology for controlling a sending schedule so that a plurality of traffic flows can run through a semiconductor integrated circuit with distributed buses while satisfying their quality requirements.
2. Description of the Related Art
There are various methods for performing a data transmission control on a semiconductor integrated circuit with buses. FIG. 1(a) illustrates an example of a lumped bus control. In a conventional integrated circuit that performs such a lumped bus control, a number of bus masters and a memory are connected together with a single bus, and accesses to the memory by the respective bus masters are arbitrated by an arbiter. By adopting such architecture, data can be transmitted while avoiding traffic interference between those bus masters and the memory. However, as the functionality of an integrated circuit has been further improved and as the number of cores in an integrated circuit has been further increased these days, the scale of the circuit has become even larger and the traffic flows running through the transmission path has gotten even more complicated. As a result, it has become increasingly difficult to design an integrated circuit by such a lumped bus control.
Meanwhile, semiconductor integrated circuits with distributed buses have been developed one after another lately by introducing parallel computerized connection technologies and network control technologies. FIG. 1(b) illustrates an example of such a distributed bus control. In a semiconductor integrated circuit with distributed buses, a number of routers (R) are connected together with multiple buses. Recently, people have been working on a so-called “Network on Chip (NoC)” in which the traffic flows in a large-scale integrated circuit are transmitted through a number of buses by adopting the distributed bus control such as the one shown in FIG. 1(b).
The qualities required for multiple traffic flows which are handled on a semiconductor integrated circuit vary according to the type of the source bus master, the type of the application, and the type and degree of priority of the traffic flow. FIG. 2 shows some exemplary types of transmission qualities which are classified according to the types of traffic flows to be handled on major integrated circuits. In the following example, a quality ensured type (A), a best-effort low-delay type (B), and a best effort type (C) will be described as three typical traffic flow types.                The quality ensured type traffic flow (A) always needs to ensure a predetermined quality with respect to any type of transmission performance such as delay or throughput. Examples of applications in which such a quality needs to be ensured include a voice call such as a phone call and operating a remote controller, which should be done in as real time possible.        The best-effort low-delay type traffic flow (B) needs to not only ensure a predetermined quality but also improve the quality of processing by increasing the transfer rate if there is any unused bus transmission band available. Such a requirement needs to be satisfied when the quality of each video frame played back should be improved by increasing, if there is any unused transmission band available, the coding rate while rendering each video frame of a predetermined quality in real time.        The best effort type traffic flow (C) just needs to be transmitted using an unused transmission band, in which no other traffic flows are running, and does not have to satisfy so rigid transmission quality requirement. Examples of such applications include Web applications and file transfers.        
The quality requirements for these three types of traffic flows are given an order of priorities according to the rigidness of their quality requirement. In this example, the rigidness of the quality requirement is supposed to decrease in the order of quality ensured type (A), best-effort low-delay type (B), and best effort type (C).
If there are multiple traffic flows that need to satisfy mutually different types of quality requirements or if only a narrow bus transmission band is available for the total quantity of traffic flows to be transmitted, each of the routers R on the transmission path needs to sense the different types of traffic flow quality requirements from each other and control the traffic flow sending schedule according to the degrees of priorities given to their quality requirements in order to guarantee the performance required for the quality ensured type (A) and the best-effort low-delay type (B).
It should be noted that the traffic flow quality requirements do not have to be distinguished according to the types of the traffic flows but may also be sorted by any other standard. For example, if the type of every traffic flow is the quality ensured type (A), the required qualities may also be classified according to the time delay (i.e., the length of the time left before the deadline) permitted before the traffic flow arrives at the destination. Alternatively, the quality requirements may also be defined so that the shorter the time delay permitted for a traffic flow, the more rigid the quality requirement to be satisfied by (i.e., the higher the degree of priority given to) the traffic flow.
FIG. 3 illustrates a configuration for a conventional router.
In order to control the sending schedule by sensing the three different types of traffic flow quality requirements from each other, each conventional router provides a buffer dedicated to a quality ensured type traffic flow (A), a buffer dedicated to a best-effort low-delay type traffic flow (B), and a buffer dedicated to a best-effort type traffic flow (C). The (packets of each) traffic flow that has arrived at the router R are once classified and stored in their dedicated buffers.
A conventional router of this type is disclosed in Japanese Laid-Open Patent Publication No. 2004-56328, for example. Specifically, in Japanese Laid-Open Patent Publication No. 2004-56328, each router provides multiple dedicated buffers for respective types of traffic flows that need to satisfy mutually different types of quality requirements. Each of those dedicated buffers stores the packets of a traffic flow that needs to satisfy its associated type of quality requirement. The router controls the packet sending schedule in the order of priorities given to the respective traffic flows' quality requirements, and outputs the packets from the respective dedicated buffers according to the sending schedule determined.
Furthermore, the arbiter of the router sequentially connects buffers to the output port in the descending order of their level of quality requirement so that a buffer that needs to satisfy the highest level of quality requirement is given a top priority. In this manner, the sending schedule can be controlled according to the types of the quality requirements to be satisfied by the respective traffic flows.